package com.demo;

import java.util.Objects;
import lombok.Data;
import lombok.Getter;

/**
 * @author zhanglong and since  2020/1/14  7:40 下午
 */
@Getter
public class FundPoolPaymentDomain {

    //    登录账号
    private String applyUserAccount;
    //    员工工号
    private String applyEmpNumber;
    //    必填，预付款/个人借款：ADVANCE；标准付款：NOR_PAY；虚拟付款：VIRTUAL_PAY；主扣付款：PENALTY_PAY
    private String payType;
    //    必填，转账：TRANSACTION；托收：COLLECTION
    private String payMethod;
    //    必填，如CNY
    private String currencyCode;
    //    必填，如人民币
    private String currencyName;
    //    必填（保留两位小数点）
    private String payAmount;
    //    非必填（YYYY-MM-DD）
    private String expectPayDate;
    //    非必填
    private String purpose;
    //    必填
    private String summary;
    //    必填（由付款池组合）减去付款池生成的付款单号，剩下就是资产推送的附言内容
    private String payDesc;
    //    必填
    private String ouCode;
    //    必填，默认为N
    private String isUrgent = "N";
    //    必填
    private String isPublic = "Y";
    //    必填，EMPLOYEE：员工供应商；UNEMPLOYEE：对公供应商（客户付款时为空）
    private String vendorType;
    //    非必填
    private String vendorId;
    //    必填（客户付款时为空）
    private String vendorCode;
    //    必填（客户付款时为空）
    private String vendorName;
    //     非必填
    private String vendorSiteId;
    //    供应商编码（客户付款时为空）
    private String vendorSiteCode;
    //    必填（客户付款时为空）
    private String vendorSiteName;
    //    必填
    private String receiver;
    //    非必填(外币付款需要)
    private String receiverEn;
    //    必填
    private String bankAccount;
    //    必填，支行名称
    private String bankName;
    //    必填
    private String bankCode;
    //    非必填(外币付款需要)
    private String bankAddress;
    //    非必填(外币付款需要)
    private String country;
    //    不给联行号必填
    private String provice;
    //    不给联行号必填
    private String city;
    //    不给联行号必填
    private String bankType;
    //    非必填
    private String bankAccountId;
    //    非必填(指定付款账户必填)
    private String payBankAccount;
    //    非必填(指定付款账户必填)
    private String payBankName;
    //    非必填(指定付款账户必填)
    private String payBankAccountName;
    //    非必填（为空）
    private String customerId;
    //    非必填（客户付款时必填）
    private String customerCode;
    //    非必填（客户付款时必填）
    private String customerName;
    //    非必填
    private String accountCurrency;
    //    非必填(外币付款需要)
    private String swiftCode;
    //    必填
    private String cashFlowItemCode;
    //    和来源系统一样填值
    private String proxyUser;
    //    必填
    private String sourceSystem;
    //    必填
    private String sourceOrderType;
    //    必填（每次下发的ID必须保证不相同，付款池做防重处理）
    private String sourceOrderId;
    //    必填（业务编号）
    private String sourceOrderCode;
    //    必填（默认填写1）
    private String sourceOrderLineId;
    //    非必填
    private String sourceOrderUrl;
    //    非必填（借方利润中心）
    private String profitCode;

    public void setApplyUserAccount( Object applyUserAccount ) {
        this.applyUserAccount = applyUserAccount.toString();
    }

    public void setApplyEmpNumber( Object applyEmpNumber ) {
        this.applyEmpNumber = applyEmpNumber.toString();
    }

    public void setPayType( Object payType ) {
        this.payType = payType.toString();
    }

    public void setPayMethod( Object payMethod ) {
        this.payMethod = payMethod.toString();
    }

    public void setCurrencyCode( Object currencyCode ) {
        this.currencyCode = currencyCode.toString();
    }

    public void setCurrencyName( Object currencyName ) {
        this.currencyName = currencyName.toString();
    }

    public void setPayAmount( Object payAmount ) {
        this.payAmount = payAmount.toString();
    }

    public void setExpectPayDate( Object expectPayDate ) {
        this.expectPayDate = expectPayDate.toString();
    }

    public void setPurpose( Object purpose ) {
        this.purpose = purpose.toString();
    }

    public void setSummary( Object summary ) {
        this.summary = summary.toString();
    }

    public void setPayDesc( Object payDesc ) {
        this.payDesc = payDesc.toString();
    }

    public void setOuCode( Object ouCode ) {
        this.ouCode = ouCode.toString();
    }

    public void setIsUrgent( Object isUrgent ) {
        this.isUrgent = isUrgent.toString();
    }

    public void setIsPublic( Object isPublic ) {
        this.isPublic = isPublic.toString();
    }

    public void setVendorType( Object vendorType ) {
        this.vendorType = vendorType.toString();
    }

    public void setVendorId( Object vendorId ) {
        this.vendorId = vendorId.toString();
    }

    public void setVendorCode( Object vendorCode ) {
        this.vendorCode = vendorCode.toString();
    }

    public void setVendorName( Object vendorName ) {
        this.vendorName = vendorName.toString();
    }

    public void setVendorSiteId( Object vendorSiteId ) {
        this.vendorSiteId = vendorSiteId.toString();
    }

    public void setVendorSiteCode( Object vendorSiteCode ) {
        this.vendorSiteCode = vendorSiteCode.toString();
    }

    public void setVendorSiteName( Object vendorSiteName ) {
        this.vendorSiteName = vendorSiteName.toString();
    }

    public void setReceiver( Object receiver ) {
        this.receiver = receiver.toString();
    }

    public void setReceiverEn( Object receiverEn ) {
        this.receiverEn = receiverEn.toString();
    }

    public void setBankAccount( Object bankAccount ) {
        this.bankAccount = bankAccount.toString();
    }

    public void setBankName( Object bankName ) {
        this.bankName = bankName.toString();
    }

    public void setBankCode( Object bankCode ) {
        this.bankCode = bankCode.toString();
    }

    public void setBankAddress( Object bankAddress ) {
        this.bankAddress = bankAddress.toString();
    }

    public void setCountry( Object country ) {
        this.country = country.toString();
    }

    public void setProvice( Object provice ) {
        this.provice = provice.toString();
    }

    public void setCity( Object city ) {
        this.city = city.toString();
    }

    public void setBankType( Object bankType ) {
        this.bankType = bankType.toString();
    }

    public void setBankAccountId( Object bankAccountId ) {
        this.bankAccountId = bankAccountId.toString();
    }

    public void setPayBankAccount( Object payBankAccount ) {
        this.payBankAccount = payBankAccount.toString();
    }

    public void setPayBankName( Object payBankName ) {
        this.payBankName = payBankName.toString();
        ;
    }

    public void setPayBankAccountName( Object payBankAccountName ) {
        this.payBankAccountName = payBankAccountName.toString();
    }

    public void setCustomerId( Object customerId ) {
        this.customerId = customerId.toString();
    }

    public void setCustomerCode( Object customerCode ) {
        this.customerCode = customerCode.toString();
    }

    public void setCustomerName( Object customerName ) {
        this.customerName = customerName.toString();
    }

    public void setAccountCurrency( Object accountCurrency ) {
        this.accountCurrency = accountCurrency.toString();
    }

    public void setSwiftCode( Object swiftCode ) {
        this.swiftCode = swiftCode.toString();
    }

    public void setCashFlowItemCode( Object cashFlowItemCode ) {
        this.cashFlowItemCode = cashFlowItemCode.toString();
    }

    public void setProxyUser( Object proxyUser ) {
        this.proxyUser = proxyUser.toString();
    }

    public void setSourceSystem( Object sourceSystem ) {
        this.sourceSystem = sourceSystem.toString();
    }

    public void setSourceOrderType( Object sourceOrderType ) {
        this.sourceOrderType = sourceOrderType.toString();
    }

    public void setSourceOrderId( Object sourceOrderId ) {
        this.sourceOrderId = sourceOrderId.toString();
    }

    public void setSourceOrderCode( Object sourceOrderCode ) {
        this.sourceOrderCode = sourceOrderCode.toString();
    }

    public void setSourceOrderLineId( Object sourceOrderLineId ) {
        this.sourceOrderLineId = sourceOrderLineId.toString();
    }

    public void setSourceOrderUrl( Object sourceOrderUrl ) {
        this.sourceOrderUrl = sourceOrderUrl.toString();
    }

    public void setProfitCode( Object profitCode ) {
        this.profitCode = profitCode.toString();
    }

    @Override
    public String toString() {
        return "FundPoolPaymentDomain{" +
            "applyUserAccount='" + applyUserAccount + '\'' +
            ", applyEmpNumber='" + applyEmpNumber + '\'' +
            ", payType='" + payType + '\'' +
            ", payMethod='" + payMethod + '\'' +
            ", currencyCode='" + currencyCode + '\'' +
            ", currencyName='" + currencyName + '\'' +
            ", payAmount='" + payAmount + '\'' +
            ", expectPayDate='" + expectPayDate + '\'' +
            ", purpose='" + purpose + '\'' +
            ", summary='" + summary + '\'' +
            ", payDesc='" + payDesc + '\'' +
            ", ouCode='" + ouCode + '\'' +
            ", isUrgent='" + isUrgent + '\'' +
            ", isPublic='" + isPublic + '\'' +
            ", vendorType='" + vendorType + '\'' +
            ", vendorId='" + vendorId + '\'' +
            ", vendorCode='" + vendorCode + '\'' +
            ", vendorName='" + vendorName + '\'' +
            ", vendorSiteId='" + vendorSiteId + '\'' +
            ", vendorSiteCode='" + vendorSiteCode + '\'' +
            ", vendorSiteName='" + vendorSiteName + '\'' +
            ", receiver='" + receiver + '\'' +
            ", receiverEn='" + receiverEn + '\'' +
            ", bankAccount='" + bankAccount + '\'' +
            ", bankName='" + bankName + '\'' +
            ", bankCode='" + bankCode + '\'' +
            ", bankAddress='" + bankAddress + '\'' +
            ", country='" + country + '\'' +
            ", provice='" + provice + '\'' +
            ", city='" + city + '\'' +
            ", bankType='" + bankType + '\'' +
            ", bankAccountId='" + bankAccountId + '\'' +
            ", payBankAccount='" + payBankAccount + '\'' +
            ", payBankName='" + payBankName + '\'' +
            ", payBankAccountName='" + payBankAccountName + '\'' +
            ", customerId='" + customerId + '\'' +
            ", customerCode='" + customerCode + '\'' +
            ", customerName='" + customerName + '\'' +
            ", accountCurrency='" + accountCurrency + '\'' +
            ", swiftCode='" + swiftCode + '\'' +
            ", cashFlowItemCode='" + cashFlowItemCode + '\'' +
            ", proxyUser='" + proxyUser + '\'' +
            ", sourceSystem='" + sourceSystem + '\'' +
            ", sourceOrderType='" + sourceOrderType + '\'' +
            ", sourceOrderId='" + sourceOrderId + '\'' +
            ", sourceOrderCode='" + sourceOrderCode + '\'' +
            ", sourceOrderLineId='" + sourceOrderLineId + '\'' +
            ", sourceOrderUrl='" + sourceOrderUrl + '\'' +
            ", profitCode='" + profitCode + '\'' +
            '}';
    }
}
